using System;
using System.Collections.Generic;
using System.Collections.ObjectModel; 
using System.Text;
using System.Collections.Specialized;

namespace Coriander.Google.Charting
{
    /// <summary>
    /// 
    /// </summary>
    public class ChartAxis
    {
        ChartAxisType axisType = ChartAxisType.X;
        ChartAxisStyle axisStyle;
        IList<ChartAxisLabel> labels;
        String name;
        Double rangeLowerBound = 0;
        Double rangeUpperBound = 100;

        /// <summary>
        /// Chart axis style
        /// </summary>
        public ChartAxisStyle AxisStyle
        {
            get { return axisStyle; }
            set { axisStyle = value; }
        }

        /// <summary>
        /// The axis type
        /// </summary>
        public ChartAxisType AxisType
        {
            get { return axisType; }
            set { axisType = value; }
        } 

        /// <summary>
        /// 
        /// </summary>
        public String Name
        {
            get { return name; }
            set { name = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public IList<ChartAxisLabel> Labels
        {
            get 
            { 
                return labels ?? (labels = new Collection<ChartAxisLabel>()); 
            }
            set { labels = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public Double RangeLowerBound
        {
            get { return rangeLowerBound; }
            set { rangeLowerBound = value; }
        }
        
        /// <summary>
        /// 
        /// </summary>
        public Double RangeUpperBound
        {
            get { return rangeUpperBound; }
            set { rangeUpperBound = value; }
        }
    }
}